Compare commits

..

2 Commits

Author SHA1 Message Date
Philipp Heckel
8280e5b0ad Do not allow empty messages 2021-11-18 14:21:00 -05:00
Philipp Heckel
ae97fbe025 Fix typo 2021-11-18 13:14:55 -05:00
3 changed files with 15 additions and 3 deletions

View File

@@ -68,6 +68,9 @@ func (c *sqliteCache) Messages(topic string, since sinceTime) ([]*message, error
if err := rows.Scan(&id, &timestamp, &msg); err != nil {
return nil, err
}
if msg == "" {
msg = " " // Hack: never return empty messages; this should not happen
}
messages = append(messages, &message{
ID: id,
Time: timestamp,

View File

@@ -60,14 +60,20 @@
<h2 id="publish" class="anchor">Publishing messages</h2>
<p>
Publishing messages can be done via PUT or POST using. Topics are created on the fly by subscribing or publishing to them.
Publishing messages can be done via PUT or POST. Topics are created on the fly by subscribing or publishing to them.
Because there is no sign-up, <b>the topic is essentially a password</b>, so pick something that's not easily guessable.
</p>
<p class="smallMarginBottom">
Here's an example showing how to publish a message using <tt>curl</tt>:
Here's an example showing how to publish a message using <tt>curl</tt> (via POST):
</p>
<code>
curl -d "long process is done" ntfy.sh/mytopic
curl -d "Backup successful 😀" ntfy.sh/mytopic
</code>
<p class="smallMarginBottom">
And another one using PUT:
</p>
<code>
echo -en "\u26A0\uFE0F Unauthorized login" | curl -sT- ntfy.sh/mytopic
</code>
<p class="smallMarginBottom">
Here's an example in JS with <tt>fetch()</tt> (see <a href="https://github.com/binwiederhier/ntfy/tree/main/examples">full example</a>):

View File

@@ -243,6 +243,9 @@ func (s *Server) handlePublish(w http.ResponseWriter, r *http.Request, v *visito
return err
}
m := newDefaultMessage(t.id, string(b))
if m.Message == "" {
return errHTTPBadRequest
}
if err := t.Publish(m); err != nil {
return err
}