summaryrefslogtreecommitdiff
path: root/src/login/login.cpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-01-08 15:39:16 -0800
committerBen Longbons <b.r.longbons@gmail.com>2013-01-08 15:39:16 -0800
commit3e42921c657bc93094f0c7d96855aae9b0be5a7e (patch)
treefe74fd1c1f8b370084091f1e26aef94ad427e7b0 /src/login/login.cpp
parent8b0d596d0bfce7666e59952a6949572ab826b43c (diff)
downloadtmwa-3e42921c657bc93094f0c7d96855aae9b0be5a7e.tar.gz
tmwa-3e42921c657bc93094f0c7d96855aae9b0be5a7e.tar.bz2
tmwa-3e42921c657bc93094f0c7d96855aae9b0be5a7e.tar.xz
tmwa-3e42921c657bc93094f0c7d96855aae9b0be5a7e.zip
Improve warnings; fix const_db.txt bug.
Diffstat (limited to 'src/login/login.cpp')
-rw-r--r--src/login/login.cpp34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/login/login.cpp b/src/login/login.cpp
index 3217af5..b8dc4d0 100644
--- a/src/login/login.cpp
+++ b/src/login/login.cpp
@@ -261,25 +261,23 @@ int read_gm_account(void)
static
int check_ipmask(struct in_addr ip, const char *str)
{
- unsigned int mask = 0, i = 0, m, ip2, a0, a1, a2, a3;
- unsigned char *p = (unsigned char *) &ip2, *p2 = (unsigned char *) &mask;
-
- if (sscanf(str, "%d.%d.%d.%d/%n", &a0, &a1, &a2, &a3, &i) != 4 || i == 0)
+ unsigned int mask = 0, ip2;
+ unsigned char *p = (unsigned char *) &ip2,
+ *p2 = (unsigned char *) &mask;
+ int i = 0;
+ unsigned int m;
+
+ if (sscanf(str, "%hhu.%hhu.%hhu.%hhu/%n",
+ &p[0], &p[1], &p[2], &p[3], &i) != 4
+ || i == 0)
return 0;
- p[0] = a0;
- p[1] = a1;
- p[2] = a2;
- p[3] = a3;
- if (sscanf(str + i, "%d.%d.%d.%d", &a0, &a1, &a2, &a3) == 4)
+ if (sscanf(str + i, "%hhu.%hhu.%hhu.%hhu",
+ &p2[0], &p2[1], &p2[2], &p2[3]) == 4)
{
- p2[0] = a0;
- p2[1] = a1;
- p2[2] = a2;
- p2[3] = a3;
mask = ntohl(mask);
}
- else if (sscanf(str + i, "%d", &m) == 1 && m <= 32)
+ else if (sscanf(str + i, "%u", &m) == 1 && m <= 32)
{
for (i = 0; i < m && i < 32; i++)
mask = (mask >> 1) | 0x80000000;
@@ -3662,13 +3660,9 @@ int login_lan_config_read(const char *lancfgName)
// sub-network check of the char-server
{
- unsigned int a0, a1, a2, a3;
unsigned char p[4];
- sscanf(lan_char_ip, "%d.%d.%d.%d", &a0, &a1, &a2, &a3);
- p[0] = a0;
- p[1] = a1;
- p[2] = a2;
- p[3] = a3;
+ sscanf(lan_char_ip, "%hhu.%hhu.%hhu.%hhu",
+ &p[0], &p[1], &p[2], &p[3]);
PRINTF("LAN test of LAN IP of the char-server: ");
if (lan_ip_check(p) == 0)
{