osip-dev
[Top][All Lists]
Advanced

[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;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]