Richard Fuchs
c13c9166e2
MT#61977 add up/download capability to HTTP
Change-Id: I50334482c9316aed5315ad5814ae54081856ef90
4 months ago
Richard Fuchs
453ede0913
MT#61977 add http/curl wrappers
Change-Id: Iefa4f0acfadabae38ff1da4c20dda51718f9580f
4 months ago
Richard Fuchs
3670f75448
MT#61977 turn DB writing into a notification
Change-Id: I7a3d0ad048bc88aa638adfc618c60fe510f254c4
4 months ago
Richard Fuchs
bc9fc1e443
MT#61977 add notification failure handling
Change-Id: Ide4d8429d57f53d0f759fa8a1255be9e06d94515
4 months ago
Richard Fuchs
b5019b8725
MT#61977 move notification types
Change-Id: I8fb1cc1caf7c5ae887f4c22745d66ef85a354b46
4 months ago
Richard Fuchs
d122b39313
MT#61977 introduce content_t
Refcounted object to contain media content
Change-Id: Idd9fe65051cf90930204bd83ee2125d1d4b79237
4 months ago
Richard Fuchs
d484e2d844
MT#61977 generalise notification mechanism
Change-Id: I8e72cb617f3da8586ca345d601b92b9bcadb29d7
4 months ago
Richard Fuchs
09c87d5464
MT#61977 move cleanup of notifiers
Destroy thread pool only after everything is finished using it
Change-Id: Iab8667b3a80aaf43581b19b03ff6191dfe69c8d6
4 months ago
Richard Fuchs
74bc521eab
MT#61977 use _get_content for notifications
Use the new _get_content function to provide the notification content to
cURL in memory instead of making it read a file. This makes it possible
to use it together with DB storage.
This also relieves the notification poster from deleting the file if the
"purge" option is set, making it possible to simply roll it into file
output being disabled.
Retain legacy support for the "purge" option.
Change-Id: Ia1d59018d79777759de894aba1d888c927e5ba00
4 months ago
Richard Fuchs
820de80c14
MT#61977 convert notify-record option
Turn it into an output-storage option.
Change-Id: Id90be28f827117c0f276f9f44c9d25de8d42a43e
4 months ago
Richard Fuchs
991a2c3bce
MT#55283 silence curl compiler warnings
Change-Id: Ie0e4e292f10cf69e871a150957c957095bc3545b
6 months ago
Richard Fuchs
0f654468a6
MT#62544 support notification command
Change-Id: Ibc70ed9ad8d5e9a605e50094dfe55e2545a5a339
7 months ago
Richard Fuchs
6652b5f392
MT#62544 split out notify retry logic
Change-Id: Id3c4779c0f049a74c6fa84d19b2110bf5373f6cb
7 months ago
Richard Fuchs
21672a296c
MT#62544 split out HTTP notification logic
Change-Id: I716754f2b72bced6033642bec87134f8b4e05651
7 months ago
Richard Fuchs
8e5cd0aa9d
MT#55283 scale falloff
Change-Id: Iab3a3bff3f32561166f9c3076125103c29b5ab1f
8 months ago
Richard Fuchs
2cda41718a
MT#55283 convert now_double to int64_t
Change-Id: I305415a7edc5593d82acf3be1ce6820627c050de
8 months ago
Richard Fuchs
a7d71f09b8
MT#55283 convert notify to int64_t
Change-Id: Ia30d935966d2dd33902ffee8c46ddd184444f829
8 months ago
Richard Fuchs
75884b8d58
MT#55283 add dedicated g_tree_first wrapper
Change-Id: I4f7a366d37ab2c67d57f4217133725917b2e726b
8 months ago
Richard Fuchs
5460ca1f90
MT#55283 properly namespace g_tree helpers
Change-Id: Ie3097da52012a91b1e5d9d5c7dabe901ff2d9d72
8 months ago
Richard Fuchs
4d8156bf91
MT#55283 remove remnants of g_slice
The GLib slice allocator has been obsoleted. Having a mixture of two
allocators can lead to hidden issues on systems that use different
implementations. Take the leap and replace everything with g_new/g_free.
Change-Id: I025c8383ef47b2c2472573360407fd6a6ca339b3
8 months ago
Richard Fuchs
189de8ed28
MT#55283 check pthread_create return value
Change-Id: Iecf0a650bcc6408677282660f0fcd409cd741626
Warned-by: Coverity
9 months ago
Richard Fuchs
6189efd91a
MT#59069 refactor metadata parsing
Parse out the :| separate list of metadata keys when the metadata is
loaded, and stored it in parsed format, instead of doing when running
the DB update and discarding the result.
Functional no-op.
Change-Id: I96d706d63eb9337ba572a7f17363cbda553745f6
2 years ago
Sewan R&D
6fd79f5206
feat: notify-purge removes a file if notify success
Closes #1675
Change-Id: I5edd20efabcf94a19932a7066e80d77e6d99f0d2
3 years ago
Donat Zenichev
de0e31eaeb
MT#56493 Fix some defects discovered by CoverityScan
Fix the following defect:
*** CID 1534609: (DEADCODE)
/recording-daemon/notify.c: 110 in do_notify()
104 part = curl_mime_addpart(mime);
105 curl_mime_name(part, "ngfile");
106 if (ret != CURLE_OK)
107 goto fail;
108 curl_mime_filedata(part, req->full_filename_path);
109 if (ret != CURLE_OK)
>>> CID 1534609: (DEADCODE)
>>> Execution cannot reach this statement: "goto fail;".
110 goto fail;
111 curl_easy_setopt(c, CURLOPT_MIMEPOST, mime);
112 if (ret != CURLE_OK)
113 goto fail;
114 }
115
/recording-daemon/notify.c: 113 in do_notify()
107 goto fail;
108 curl_mime_filedata(part, req->full_filename_path);
109 if (ret != CURLE_OK)
110 goto fail;
111 curl_easy_setopt(c, CURLOPT_MIMEPOST, mime);
112 if (ret != CURLE_OK)
>>> CID 1534609: (DEADCODE)
>>> Execution cannot reach this statement: "goto fail;".
113 goto fail;
114 }
115
116 err = "performing request";
117 ret = curl_easy_perform(c);
118 if (ret != CURLE_OK)
/recording-daemon/notify.c: 107 in do_notify()
101 err = "initializing curl mime&part";
102 curl_mimepart *part;
103 mime = curl_mime_init(c);
104 part = curl_mime_addpart(mime);
105 curl_mime_name(part, "ngfile");
106 if (ret != CURLE_OK)
>>> CID 1534609: (DEADCODE)
>>> Execution cannot reach this statement: "goto fail;".
107 goto fail;
108 curl_mime_filedata(part, req->full_filename_path);
109 if (ret != CURLE_OK)
110 goto fail;
111 curl_easy_setopt(c, CURLOPT_MIMEPOST, mime);
112 if (ret != CURLE_OK)
*** CID 1534608: Error handling issues (CHECKED_RETURN)
/recording-daemon/notify.c: 108 in do_notify()
102 curl_mimepart *part;
103 mime = curl_mime_init(c);
104 part = curl_mime_addpart(mime);
105 curl_mime_name(part, "ngfile");
106 if (ret != CURLE_OK)
107 goto fail;
>>> CID 1534608: Error handling issues (CHECKED_RETURN)
>>> Calling "curl_mime_filedata(part, req->full_filename_path)" without checking return value.
>>> This library function may fail and return an error code.
108 curl_mime_filedata(part, req->full_filename_path);
109 if (ret != CURLE_OK)
110 goto fail;
111 curl_easy_setopt(c, CURLOPT_MIMEPOST, mime);
112 if (ret != CURLE_OK)
113 goto fail;
*** CID 1534607: Error handling issues (CHECKED_RETURN)
/recording-daemon/notify.c: 111 in do_notify()
105 curl_mime_name(part, "ngfile");
106 if (ret != CURLE_OK)
107 goto fail;
108 curl_mime_filedata(part, req->full_filename_path);
109 if (ret != CURLE_OK)
110 goto fail;
>>> CID 1534607: Error handling issues (CHECKED_RETURN)
>>> Calling "curl_easy_setopt(c, _curl_opt, mime)" without checking return value.
>>> This library function may fail and return an error code.
111 curl_easy_setopt(c, CURLOPT_MIMEPOST, mime);
112 if (ret != CURLE_OK)
113 goto fail;
114 }
115
116 err = "performing request";
Additionally, refactor the code in the do_notify() slightly.
Change-Id: I80dd373f4ced92d90475dbcca21ee2d62f06e57e
3 years ago
Richard Fuchs
aa0ccae1d7
MT#55283 fix compilation for older libcurl
Debian stretch has an old libcurl which doesn't support MIMEPOST.
Disable the entire feature if libcurl is too old.
Change-Id: Id1d2a4d821671142523af355188f21ff06ad20f1
3 years ago
Serdar GÜÇLÜER
a75d55444b
MT#55283 Support attaching recorded file
closes #1611
Change-Id: Id03400fb79339f4b0ed1eddfd6dce56295e57cef
3 years ago
Richard Fuchs
ff47e874ea
MT#56493 add support for HTTP notifications
Change-Id: I3ac04968279a5b750f1f7f4d4d06207e05e7d8a8
3 years ago