[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[eXosip] [subscribe] fix to allow maximum authorized value for expires h
From: |
Benoît Monin |
Subject: |
[eXosip] [subscribe] fix to allow maximum authorized value for expires header [rfc3261] |
Date: |
Fri, 24 May 2024 16:21:29 +0200 |
---
include/eXosip2/eX_subscribe.h | 2 +-
src/eXosip2.h | 2 +-
src/eXsubscription_api.c | 6 +++---
src/jsubscribe.c | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/eXosip2/eX_subscribe.h b/include/eXosip2/eX_subscribe.h
index bb49cd4..aa4e6d5 100644
--- a/include/eXosip2/eX_subscribe.h
+++ b/include/eXosip2/eX_subscribe.h
@@ -118,7 +118,7 @@ enum eXosip_ss_status {
* @param event Event header for SUBSCRIBE.
* @param expires Expires header for SUBSCRIBE.
*/
-int eXosip_subscription_build_initial_subscribe(struct eXosip_t *excontext,
osip_message_t **subscribe, const char *to, const char *from, const char
*route, const char *event, int expires);
+int eXosip_subscription_build_initial_subscribe(struct eXosip_t *excontext,
osip_message_t **subscribe, const char *to, const char *from, const char
*route, const char *event, unsigned int expires);
/**
* Build a default initial REFER request.
diff --git a/src/eXosip2.h b/src/eXosip2.h
index fe2cfa6..cd835af 100644
--- a/src/eXosip2.h
+++ b/src/eXosip2.h
@@ -407,7 +407,7 @@ struct eXosip_subscribe_t {
int s_id;
int s_ss_status;
int s_ss_reason;
- int s_reg_period;
+ uint32_t s_reg_period;
eXosip_dialog_t *s_dialogs;
int s_retry; /* avoid too many unsuccessful retry */
diff --git a/src/eXsubscription_api.c b/src/eXsubscription_api.c
index 8249df4..9953dc2 100644
--- a/src/eXsubscription_api.c
+++ b/src/eXsubscription_api.c
@@ -102,8 +102,8 @@ int eXosip_subscription_remove(struct eXosip_t *excontext,
int did) {
return OSIP_SUCCESS;
}
-int eXosip_subscription_build_initial_subscribe(struct eXosip_t *excontext,
osip_message_t **sub, const char *to, const char *from, const char *route,
const char *_event, int expires) {
- char tmp[10];
+int eXosip_subscription_build_initial_subscribe(struct eXosip_t *excontext,
osip_message_t **sub, const char *to, const char *from, const char *route,
const char *_event, unsigned int expires) {
+ char tmp[11];
int i;
osip_to_t *_to = NULL;
@@ -141,7 +141,7 @@ int eXosip_subscription_build_initial_subscribe(struct
eXosip_t *excontext, osip
_eXosip_dialog_add_contact(excontext, *sub);
- snprintf(tmp, 10, "%i", expires);
+ snprintf(tmp, 11, "%u", expires);
osip_message_set_expires(*sub, tmp);
osip_message_set_header(*sub, "Event", _event);
diff --git a/src/jsubscribe.c b/src/jsubscribe.c
index e08ac85..98399a7 100644
--- a/src/jsubscribe.c
+++ b/src/jsubscribe.c
@@ -140,7 +140,7 @@ int
_eXosip_subscription_set_refresh_interval(eXosip_subscribe_t *js, osip_messa
osip_message_get_expires(out_subscribe, 0, &exp);
if (exp != NULL && exp->hvalue != NULL) {
- int val = osip_atoi(exp->hvalue);
+ uint32_t val = strtoul(exp->hvalue, NULL, 10);
if (val == 0)
js->s_reg_period = 0;