Various string length fixes. Removed an unused variable in aji_client structure (context)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81743 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Philippe Sultan 18 years ago
parent 76ffc54255
commit 8e10babcbd

@ -111,8 +111,8 @@ struct gtalk_pvt {
time_t laststun; time_t laststun;
struct gtalk *parent; /*!< Parent client */ struct gtalk *parent; /*!< Parent client */
char sid[100]; char sid[100];
char us[100]; char us[AJI_MAX_JIDLEN];
char them[100]; char them[AJI_MAX_JIDLEN];
char ring[10]; /*!< Message ID of ring */ char ring[10]; /*!< Message ID of ring */
iksrule *ringrule; /*!< Rule for matching RING request */ iksrule *ringrule; /*!< Rule for matching RING request */
int initiator; /*!< If we're the initiator */ int initiator; /*!< If we're the initiator */
@ -154,8 +154,8 @@ struct gtalk {
struct gtalk_pvt *p; struct gtalk_pvt *p;
struct ast_codec_pref prefs; struct ast_codec_pref prefs;
int amaflags; /*!< AMA Flags */ int amaflags; /*!< AMA Flags */
char user[100]; char user[AJI_MAX_JIDLEN];
char context[100]; char context[AST_MAX_CONTEXT];
char accountcode[AST_MAX_ACCOUNT_CODE]; /*!< Account code */ char accountcode[AST_MAX_ACCOUNT_CODE]; /*!< Account code */
int capability; int capability;
ast_group_t callgroup; /*!< Call group */ ast_group_t callgroup; /*!< Call group */
@ -1567,7 +1567,7 @@ static int gtalk_show_channels(int fd, int argc, char **argv)
struct gtalk_pvt *p; struct gtalk_pvt *p;
struct ast_channel *chan; struct ast_channel *chan;
int numchans = 0; int numchans = 0;
char them[100]; char them[AJI_MAX_JIDLEN];
char *jid = NULL; char *jid = NULL;
char *resource = NULL; char *resource = NULL;
@ -1758,7 +1758,7 @@ static int gtalk_load_config(void)
{ {
char *cat = NULL; char *cat = NULL;
struct ast_config *cfg = NULL; struct ast_config *cfg = NULL;
char context[100]; char context[AST_MAX_CONTEXT];
int allowguest = 1; int allowguest = 1;
struct ast_variable *var; struct ast_variable *var;
struct gtalk *member; struct gtalk *member;

@ -23,6 +23,19 @@
#include "asterisk/astobj.h" #include "asterisk/astobj.h"
#include "asterisk/linkedlists.h" #include "asterisk/linkedlists.h"
/*
* As per RFC 3920 - section 3.1, the maximum length for a full Jabber ID
* is 3071 bytes.
* The ABNF syntax for jid :
* jid = [node "@" ] domain [ "/" resource ]
* Each allowable portion of a JID (node identifier, domain identifier,
* and resource identifier) MUST NOT be more than 1023 bytes in length,
* resulting in a maximum total size (including the '@' and '/' separators)
* of 3071 bytes.
*/
#define AJI_MAX_JIDLEN 3071
#define AJI_MAX_RESJIDLEN 1023
enum aji_state { enum aji_state {
AJI_DISCONNECTING, AJI_DISCONNECTING,
AJI_DISCONNECTED, AJI_DISCONNECTED,
@ -56,7 +69,7 @@ struct aji_capabilities {
struct aji_resource { struct aji_resource {
int status; int status;
char resource[80]; char resource[AJI_MAX_RESJIDLEN];
char *description; char *description;
struct aji_version *cap; struct aji_version *cap;
int priority; int priority;
@ -72,7 +85,7 @@ struct aji_message {
}; };
struct aji_buddy { struct aji_buddy {
ASTOBJ_COMPONENTS(struct aji_buddy); ASTOBJ_COMPONENTS_FULL(struct aji_buddy, AJI_MAX_JIDLEN, 1);
struct aji_resource *resources; struct aji_resource *resources;
unsigned int flags; unsigned int flags;
}; };
@ -88,9 +101,8 @@ struct aji_transport_container {
struct aji_client { struct aji_client {
ASTOBJ_COMPONENTS(struct aji_client); ASTOBJ_COMPONENTS(struct aji_client);
char password[160]; char password[160];
char user[160]; char user[AJI_MAX_JIDLEN];
char serverhost[160]; char serverhost[AJI_MAX_RESJIDLEN];
char context[100];
char statusmessage[256]; char statusmessage[256];
char sid[10]; /* Session ID */ char sid[10]; /* Session ID */
char mid[6]; /* Message ID */ char mid[6]; /* Message ID */

Loading…
Cancel
Save