Skip to content

Commit

Permalink
*(chore): Migrate to libsoup3
Browse files Browse the repository at this point in the history
  • Loading branch information
SilverRainZ committed Mar 31, 2024
1 parent f133239 commit 842cc17
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 27 deletions.
24 changes: 12 additions & 12 deletions src/core/app_url.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ SrnRet srn_application_open_url(SrnApplication *app, const char *url){
int port;
const char *path;
const char *fragment;
SoupURI *suri;
GUri *uri;
SrnRet ret;
SrnServer *srv;
SrnServerConfig *cfg;
Expand All @@ -55,25 +55,25 @@ SrnRet srn_application_open_url(SrnApplication *app, const char *url){
cfg = NULL;
addr = NULL;

suri = soup_uri_new(url);
if (!suri){
uri = g_uri_parse(url, SOUP_HTTP_URI_FLAGS, NULL);
if (!uri){
ret = RET_ERR(_("Failed to parse \"%1$s\" as URL"), url);
goto FIN;
}

scheme = soup_uri_get_scheme(suri);
scheme = g_uri_get_scheme(uri);
if (g_ascii_strcasecmp(scheme, "irc") != 0
&& g_ascii_strcasecmp(scheme, "ircs") != 0){
ret = RET_ERR(_("Unsupported protocol: %1$s"), scheme);
goto FIN;
}

nick = soup_uri_get_user(suri);
passwd = soup_uri_get_password(suri);
host = soup_uri_get_host(suri);
port = soup_uri_get_port(suri);
path = soup_uri_get_path(suri);
fragment = soup_uri_get_fragment(suri);
nick = g_uri_get_user(uri);
passwd = g_uri_get_password(uri);
host = g_uri_get_host(uri);
port = g_uri_get_port(uri);
path = g_uri_get_path(uri);
fragment = g_uri_get_fragment(uri);

addr = srn_server_addr_new(host, port);
// Try looking for server with the same address in server list
Expand Down Expand Up @@ -159,8 +159,8 @@ SrnRet srn_application_open_url(SrnApplication *app, const char *url){

ret = SRN_OK;
FIN:
if (suri){
soup_uri_free(suri);
if (uri){
g_uri_unref(uri);
}
if (addr){
srn_server_addr_free(addr);
Expand Down
2 changes: 1 addition & 1 deletion src/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ deps = [
dependency('gtk+-3.0', version: '>= 3.22.15'),
dependency('glib-2.0', version: '>= 2.39.3'),
dependency('libconfig', version: '>= 1.5'),
dependency('libsoup-2.4'),
dependency('libsoup-3.0'),
dependency('openssl'),
dependency('libsecret-1'),
generated_meta_h,
Expand Down
27 changes: 13 additions & 14 deletions src/sui/sui_url_previewer.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ struct _SuiUrlPreviewer {
SuiUrlContentType content_type;

bool previewed;
SoupURI *uri;
GUri *uri;
SoupSession *session;
SoupMessage *msg;
GCancellable *cancel;
Expand Down Expand Up @@ -168,10 +168,9 @@ static void sui_url_previewer_init(SuiUrlPreviewer *self){

/* All SuiUrlPreviewers share one SoupSession instance */
if (!SOUP_IS_SESSION(default_session)){
default_session = soup_session_new_with_options(
SOUP_SESSION_USER_AGENT, PACKAGE_NAME "/" PACKAGE_VERSION,
SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, TRUE,
NULL);
default_session = soup_session_new();
soup_session_set_user_agent(default_session, PACKAGE_NAME "/" PACKAGE_VERSION);
soup_session_set_accept_language_auto(default_session, TRUE);
}
self->session = default_session;

Expand Down Expand Up @@ -204,7 +203,7 @@ static void sui_url_previewer_finalize(GObject *object){
str_assign(&self->url, NULL);
str_assign(&self->mime_type, NULL);
if (self->uri) {
soup_uri_free(self->uri);
g_uri_unref(self->uri);
}
g_cancellable_cancel(self->cancel);
g_object_unref(self->cancel);
Expand Down Expand Up @@ -270,7 +269,7 @@ static void sui_url_previewer_class_init(SuiUrlPreviewerClass *class){
SuiUrlPreviewer* sui_url_previewer_new_from_cache(const char *url){
static GList *instance_list = NULL;
GList *lst;
SoupURI *uri;
GUri *uri;
SuiUrlPreviewer *instance;

while (g_list_length(instance_list) > MAX_INSTANCE_COUNT){
Expand All @@ -283,7 +282,7 @@ SuiUrlPreviewer* sui_url_previewer_new_from_cache(const char *url){
}

instance = NULL;
uri = soup_uri_new(url);
uri = g_uri_parse(url, SOUP_HTTP_URI_FLAGS, NULL);
lst = instance_list;
while (lst){
SuiUrlPreviewer *cur;
Expand All @@ -301,7 +300,7 @@ SuiUrlPreviewer* sui_url_previewer_new_from_cache(const char *url){
instance_list = g_list_append(instance_list, g_object_ref(instance));
}

soup_uri_free(uri);
g_uri_unref(uri);
return instance;
}

Expand Down Expand Up @@ -333,8 +332,8 @@ void sui_url_previewer_preview(SuiUrlPreviewer *self){

g_cancellable_reset(self->cancel);
self->msg = soup_message_new_from_uri("GET", self->uri);
soup_session_send_async(self->session, self->msg, self->cancel,
session_send_ready, self);
soup_session_send_async(self->session, self->msg, 0, // io_priority, TODO: OK for 0?
self->cancel, session_send_ready, self);
}

const char* sui_url_previewer_get_url(SuiUrlPreviewer *self){
Expand All @@ -354,14 +353,14 @@ static void sui_url_previewer_set_url(SuiUrlPreviewer *self, const char *url){
const char *scheme;

str_assign(&self->url, url);
self->uri = soup_uri_new(url);
self->uri = g_uri_parse(url, SOUP_HTTP_URI_FLAGS, NULL);

if (!self->uri){
sui_url_previewer_set_content_type(self, SUI_URL_CONTENT_TYPE_UNSUPPORTED);
return;
}

scheme = soup_uri_get_scheme(self->uri);
scheme = g_uri_get_scheme(self->uri);
if (g_ascii_strcasecmp(scheme, "http") != 0
&& g_ascii_strcasecmp(scheme, "https") != 0){
// Unsupported protocol
Expand Down Expand Up @@ -539,7 +538,7 @@ static void session_send_ready(GObject *object, GAsyncResult *result,
// Freeze notify because PROP_CONTENT_TYPE may be modified here
g_object_freeze_notify(G_OBJECT(self));

headers = self->msg->response_headers;
headers = soup_message_get_response_headers(self->msg);
// TODO: chunked encoding support
len = soup_message_headers_get_content_length(headers);
if (len > MAX_CONTENT_LENGTH) {
Expand Down

0 comments on commit 842cc17

Please sign in to comment.