i build new sip-router and then tried to make a call, but the request
that sr send out contained binary garbage in the header section after
append_hf call. i have two append_hf calls and garbage is after the
header added by the first call. the second header is not there at all,
but just garbage.
has something changed during the previous couple of days that could
explain this?
-- juha
Module: sip-router
Branch: sr_3.0
Commit: c6e33a080b218ec87184b216144e527cb41754da
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=c6e33a0…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Thu Oct 15 17:58:05 2009 +0200
core: fix fixup_spve_* reuse after free
- fixup_spve_* functions have an optimization that checks if a
a parsed format is a simple string and if this happens it frees
the fixed param an re-does the fixup with type==string.
However when freeing the result of the first fixup the original
string was freed too and the next string fixup would be
called with freed memory instead of a valid string.
(this bug was hidden before the memleak fix in af8f3e1536d)
---
mod_fix.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/mod_fix.c b/mod_fix.c
index 90a4a4d..53b12ea 100644
--- a/mod_fix.c
+++ b/mod_fix.c
@@ -197,7 +197,6 @@ FIXUP_F2FP_T(igp_pvar_pvar, 1, 3, 1, FPARAM_INT|FPARAM_PVS, FPARAM_PVS)
int ret; \
char * bkp; \
fparam_t* fp; \
- bkp=*param; \
if (param_no<=(no1)){ \
if ((ret=fix_param_types(FPARAM_PVE, param))<0){ \
ERR("Cannot convert function parameter %d to" #type2 "\n", \
@@ -206,6 +205,8 @@ FIXUP_F2FP_T(igp_pvar_pvar, 1, 3, 1, FPARAM_INT|FPARAM_PVS, FPARAM_PVS)
} else{ \
fp=(fparam_t*)*param; \
if ((ret==0) && (fp->v.pve->spec.getf==0)){ \
+ bkp=fp->orig; \
+ fp->orig=0; /* make sure orig string is not freed */ \
fparam_free_contents(fp); \
pkg_free(fp); \
*param=bkp; \
Hello,
I am wondering whether we are using the right defaults for code
downloaded and compiled from the master branch in the git repository.
I mean the code in that branch is almost always considered unstable
and when people try to compile and use it they mostly do this for
debugging purposes (well, at least developers, ordinary users should
not be using the code).
If you compile the code from the git repository, using compilation
defaults and a very simple configuration file, it is likely that you
end up having lots of memory related messages in syslog and and binary
optimized for speed which can be difficult to debug with gdb.
We have DBG_QM_MALLOC enabled by default in the git repository which I
think is good, however, the value of memdbg is set to L_DBG and the
value of debug is set to L_WARN by default. This means that unless you
explicitly configure memdbg in your configuration file, you'll see all
the memory debugging messages and it is a *a lot* of text.
You can disable memory debugging messages by setting the value of
memdbg higher than debug, but I pretty much always forget to do it.
Also the default configuration files are not consistent in this
regard. The simple one disables it by setting debug to 2 (L_DBG is 3
so memory debugging is disabled), but if you want to investigate a
problem and set debug to 3 to do that then you end up having lots of
traffic in syslog again and you have to use memdbg explicitly in the
configuration file.
The complex one, sip-router-oob.cfg, uses the defaults so you get all
the messages.
How about changing the default for memdbg to a value that is higher
than 3 (the debugging value)? Then we would always have memory
debugging messages disabled and people (both users and developers) can
easily turn them on by configuring a lower value in the configuration
file.
The second default which I believe is not entirely correct for the
code stored in the master branch in the git repository is the
compilation mode. The makefile system generates code that is optimized
for speed by default. We use -O9 which turns on pretty much all
performance optimizations in gcc. That includes variables stored in
CPU registers, however, code that uses such optimizations is difficult
to debug because gdb cannot display values of variables stored in
registers properly.
Here again, I pretty much always forget to add mode=debug when
configuring the build and often have to recompile the code after
trying to use gdb to debug something. Shouldn't we use mode=debug by
default for the code in git master branch?
Or perhaps it is just me having these issues? Maybe others have secret
techniques to share how to avoid such dumb problems?
-- Jan
In a coming commit, I'll introduce two new entities:
+<!ENTITY sercmd "sercmd">
+<!ENTITY ctlsocket "ser_ctl">
These are mentioned in several doc files and will be easier to handle
if we use entities.
/O
Module: sip-router
Branch: sr_3.0
Commit: e79a572382aa269b25db21990faa232d07a1343c
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=e79a572…
Author: Jan Janak <jan(a)ryngle.com>
Committer: Jan Janak <jan(a)ryngle.com>
Date: Thu Oct 15 12:19:29 2009 +0200
Remove obsolete gen_ha1.
The tool gen_ha1 is not needed anymore. It was used by an old version
of the script serctl. The same functionality can be achieved by other
means either on the command line or in MySQL with server-side commands.
---
Makefile | 4 +-
utils/gen_ha1/.cvsignore | 2 -
utils/gen_ha1/Makefile | 13 ----
utils/gen_ha1/calc.c | 139 ----------------------------------------------
utils/gen_ha1/calc.h | 62 --------------------
utils/gen_ha1/gen_ha1.c | 51 -----------------
6 files changed, 2 insertions(+), 269 deletions(-)
diff --git a/Makefile b/Makefile
index 80fcf22..258ac0e 100644
--- a/Makefile
+++ b/Makefile
@@ -341,10 +341,10 @@ cmodules=$(foreach mods,$(modules_dirs), $($(mods)))
# list of utils directories that should be compiled by make utils
-C_COMPILE_UTILS= utils/gen_ha1 utils/sercmd
+C_COMPILE_UTILS= utils/sercmd
# list of binaries that should be installed alongside
# (they should be created after make utils, see C_COMPILE_UTILS)
-C_INSTALL_BIN= utils/gen_ha1/gen_ha1 # sercmd is now installed by ctl
+C_INSTALL_BIN= # sercmd is now installed by ctl
# which utils know to install themselves and should be installed
# along the core (list of utils directories)
diff --git a/utils/gen_ha1/.cvsignore b/utils/gen_ha1/.cvsignore
deleted file mode 100644
index 77502d1..0000000
--- a/utils/gen_ha1/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-gen_ha1
-
diff --git a/utils/gen_ha1/Makefile b/utils/gen_ha1/Makefile
deleted file mode 100644
index 79e4d58..0000000
--- a/utils/gen_ha1/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# $Id$
-#
-# gen_ha1 Makefile
-#
-
-include ../../Makefile.defs
-
-auto_gen=
-NAME=gen_ha1
-LIBS=../../md5.o
-
-
-include ../../Makefile.utils
diff --git a/utils/gen_ha1/calc.c b/utils/gen_ha1/calc.c
deleted file mode 100644
index 326860a..0000000
--- a/utils/gen_ha1/calc.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of ser, a free SIP server.
- *
- * ser is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * For a license to use the ser software under conditions
- * other than those described here, or to purchase support for this
- * software, please contact iptel.org by e-mail at the following addresses:
- * info(a)iptel.org
- *
- * ser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "calc.h"
-#include "../../md5global.h"
-#include "../../md5.h"
-
-
-void CvtHex(HASH Bin, HASHHEX Hex)
-{
- unsigned short i;
- unsigned char j;
-
- for (i = 0; i < HASHLEN; i++) {
- j = (Bin[i] >> 4) & 0xf;
- if (j <= 9)
- Hex[i*2] = (j + '0');
- else
- Hex[i*2] = (j + 'a' - 10);
- j = Bin[i] & 0xf;
- if (j <= 9)
- Hex[i*2+1] = (j + '0');
- else
- Hex[i*2+1] = (j + 'a' - 10);
- };
- Hex[HASHHEXLEN] = '\0';
-}
-
-
-/*
- * calculate H(A1) as per spec
- */
-void DigestCalcHA1(const char * pszAlg, const char * pszUserName,
- const char * pszRealm, const char * pszPassword,
- const char * pszNonce, const char * pszCNonce,
- HASHHEX SessionKey)
-{
- MD5_CTX Md5Ctx;
- HASH HA1;
-
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword));
- MD5Final(HA1, &Md5Ctx);
- if (strcmp(pszAlg, "md5-sess") == 0) {
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, HA1, HASHLEN);
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
- MD5Final(HA1, &Md5Ctx);
- };
- CvtHex(HA1, SessionKey);
-}
-
-
-/*
- * calculate request-digest/response-digest as per HTTP Digest spec
- */
-void DigestCalcResponse(
- HASHHEX HA1, /* H(A1) */
- const char * pszNonce, /* nonce from server */
- const char * pszNonceCount, /* 8 hex digits */
- const char * pszCNonce, /* client nonce */
- const char * pszQop, /* qop-value: "", "auth", "auth-int" */
- const char * pszMethod, /* method from the request */
- const char * pszDigestUri, /* requested URL */
- HASHHEX HEntity, /* H(entity body) if qop="auth-int" */
- HASHHEX Response /* request-digest or response-digest */)
-{
- MD5_CTX Md5Ctx;
- HASH HA2;
- HASH RespHash;
- HASHHEX HA2Hex;
-
- /* calculate H(A2) */
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri));
- if (strcmp(pszQop, "auth-int") == 0) {
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, HEntity, HASHHEXLEN);
- };
- MD5Final(HA2, &Md5Ctx);
- CvtHex(HA2, HA2Hex);
-
- /* calculate response */
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, HA1, HASHHEXLEN);
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
- MD5Update(&Md5Ctx, ":", 1);
- if (*pszQop) {
- MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszQop, strlen(pszQop));
- MD5Update(&Md5Ctx, ":", 1);
- };
- MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN);
- MD5Final(RespHash, &Md5Ctx);
- CvtHex(RespHash, Response);
-}
-
diff --git a/utils/gen_ha1/calc.h b/utils/gen_ha1/calc.h
deleted file mode 100644
index bc9044e..0000000
--- a/utils/gen_ha1/calc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of ser, a free SIP server.
- *
- * ser is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * For a license to use the ser software under conditions
- * other than those described here, or to purchase support for this
- * software, please contact iptel.org by e-mail at the following addresses:
- * info(a)iptel.org
- *
- * ser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#ifndef CALC_H
-#define CALC_H
-
-
-#define HASHLEN 16
-typedef char HASH[HASHLEN];
-
-
-#define HASHHEXLEN 32
-typedef char HASHHEX[HASHHEXLEN+1];
-
-
-void CvtHex(HASH Bin, HASHHEX Hex);
-
-/*
- * calculate H(A1) as per HTTP Digest spec
- */
-void DigestCalcHA1(const char * pszAlg, const char * pszUserName, const char * pszRealm,
- const char * pszPassword, const char * pszNonce, const char * pszCNonce,
- HASHHEX SessionKey);
-
-/* calculate request-digest/response-digest as per HTTP Digest spec */
-void DigestCalcResponse(HASHHEX HA1, /* H(A1) */
- const char * pszNonce, /* nonce from server */
- const char * pszNonceCount, /* 8 hex digits */
- const char * pszCNonce, /* client nonce */
- const char * pszQop, /* qop-value: "", "auth", "auth-int" */
- const char * pszMethod, /* method from the request */
- const char * pszDigestUri, /* requested URL */
- HASHHEX HEntity, /* H(entity body) if qop="auth-int" */
- HASHHEX Response /* request-digest or response-digest */);
-
-
-#endif
diff --git a/utils/gen_ha1/gen_ha1.c b/utils/gen_ha1/gen_ha1.c
deleted file mode 100644
index 799da62..0000000
--- a/utils/gen_ha1/gen_ha1.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of ser, a free SIP server.
- *
- * ser is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * For a license to use the ser software under conditions
- * other than those described here, or to purchase support for this
- * software, please contact iptel.org by e-mail at the following addresses:
- * info(a)iptel.org
- *
- * ser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "../../md5global.h"
-#include "../../md5.h"
-#include "calc.h"
-
-
-
-int main(int argc, char** argv)
-{
- HASHHEX ha1;
-
- if (argc != 4) {
- printf("Usage: gen_ha1 <username> <realm> <password> \n");
- /* return EXIT_SUCCESS; -jku */
- return 1;
- }
-
- DigestCalcHA1("md5", argv[1], argv[2], argv[3], "", "", ha1);
- printf("%s\n", ha1);
-
- return 0; /* jku */
-}
Module: sip-router
Branch: master
Commit: fade70e2412b7c75ae571c48aa006c08148d4e53
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=fade70e…
Author: Jan Janak <jan(a)ryngle.com>
Committer: Jan Janak <jan(a)ryngle.com>
Date: Thu Oct 15 12:19:29 2009 +0200
Remove obsolete gen_ha1.
The tool gen_ha1 is not needed anymore. It was used by an old version
of the script serctl. The same functionality can be achieved by other
means either on the command line or in MySQL with server-side commands.
---
Makefile | 4 +-
utils/gen_ha1/.cvsignore | 2 -
utils/gen_ha1/Makefile | 13 ----
utils/gen_ha1/calc.c | 139 ----------------------------------------------
utils/gen_ha1/calc.h | 62 --------------------
utils/gen_ha1/gen_ha1.c | 51 -----------------
6 files changed, 2 insertions(+), 269 deletions(-)
diff --git a/Makefile b/Makefile
index 768c080..ca0eba5 100644
--- a/Makefile
+++ b/Makefile
@@ -341,8 +341,8 @@ cmodules=$(foreach mods,$(modules_dirs), $($(mods)))
# which utils need compilation (directory path) and which to install
# (full path including file name)
-utils_compile= utils/gen_ha1 utils/sercmd
-utils_bin_install= utils/gen_ha1/gen_ha1 # sercmd is now installed by ctl
+utils_compile= utils/sercmd
+utils_bin_install= # sercmd is now installed by ctl
utils_script_install=
# This is the list of files to be installed into the arch-independent
diff --git a/utils/gen_ha1/.cvsignore b/utils/gen_ha1/.cvsignore
deleted file mode 100644
index 77502d1..0000000
--- a/utils/gen_ha1/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-gen_ha1
-
diff --git a/utils/gen_ha1/Makefile b/utils/gen_ha1/Makefile
deleted file mode 100644
index 79e4d58..0000000
--- a/utils/gen_ha1/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# $Id$
-#
-# gen_ha1 Makefile
-#
-
-include ../../Makefile.defs
-
-auto_gen=
-NAME=gen_ha1
-LIBS=../../md5.o
-
-
-include ../../Makefile.utils
diff --git a/utils/gen_ha1/calc.c b/utils/gen_ha1/calc.c
deleted file mode 100644
index 326860a..0000000
--- a/utils/gen_ha1/calc.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of ser, a free SIP server.
- *
- * ser is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * For a license to use the ser software under conditions
- * other than those described here, or to purchase support for this
- * software, please contact iptel.org by e-mail at the following addresses:
- * info(a)iptel.org
- *
- * ser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "calc.h"
-#include "../../md5global.h"
-#include "../../md5.h"
-
-
-void CvtHex(HASH Bin, HASHHEX Hex)
-{
- unsigned short i;
- unsigned char j;
-
- for (i = 0; i < HASHLEN; i++) {
- j = (Bin[i] >> 4) & 0xf;
- if (j <= 9)
- Hex[i*2] = (j + '0');
- else
- Hex[i*2] = (j + 'a' - 10);
- j = Bin[i] & 0xf;
- if (j <= 9)
- Hex[i*2+1] = (j + '0');
- else
- Hex[i*2+1] = (j + 'a' - 10);
- };
- Hex[HASHHEXLEN] = '\0';
-}
-
-
-/*
- * calculate H(A1) as per spec
- */
-void DigestCalcHA1(const char * pszAlg, const char * pszUserName,
- const char * pszRealm, const char * pszPassword,
- const char * pszNonce, const char * pszCNonce,
- HASHHEX SessionKey)
-{
- MD5_CTX Md5Ctx;
- HASH HA1;
-
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword));
- MD5Final(HA1, &Md5Ctx);
- if (strcmp(pszAlg, "md5-sess") == 0) {
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, HA1, HASHLEN);
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
- MD5Final(HA1, &Md5Ctx);
- };
- CvtHex(HA1, SessionKey);
-}
-
-
-/*
- * calculate request-digest/response-digest as per HTTP Digest spec
- */
-void DigestCalcResponse(
- HASHHEX HA1, /* H(A1) */
- const char * pszNonce, /* nonce from server */
- const char * pszNonceCount, /* 8 hex digits */
- const char * pszCNonce, /* client nonce */
- const char * pszQop, /* qop-value: "", "auth", "auth-int" */
- const char * pszMethod, /* method from the request */
- const char * pszDigestUri, /* requested URL */
- HASHHEX HEntity, /* H(entity body) if qop="auth-int" */
- HASHHEX Response /* request-digest or response-digest */)
-{
- MD5_CTX Md5Ctx;
- HASH HA2;
- HASH RespHash;
- HASHHEX HA2Hex;
-
- /* calculate H(A2) */
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri));
- if (strcmp(pszQop, "auth-int") == 0) {
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, HEntity, HASHHEXLEN);
- };
- MD5Final(HA2, &Md5Ctx);
- CvtHex(HA2, HA2Hex);
-
- /* calculate response */
- MD5Init(&Md5Ctx);
- MD5Update(&Md5Ctx, HA1, HASHHEXLEN);
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
- MD5Update(&Md5Ctx, ":", 1);
- if (*pszQop) {
- MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
- MD5Update(&Md5Ctx, ":", 1);
- MD5Update(&Md5Ctx, pszQop, strlen(pszQop));
- MD5Update(&Md5Ctx, ":", 1);
- };
- MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN);
- MD5Final(RespHash, &Md5Ctx);
- CvtHex(RespHash, Response);
-}
-
diff --git a/utils/gen_ha1/calc.h b/utils/gen_ha1/calc.h
deleted file mode 100644
index bc9044e..0000000
--- a/utils/gen_ha1/calc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of ser, a free SIP server.
- *
- * ser is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * For a license to use the ser software under conditions
- * other than those described here, or to purchase support for this
- * software, please contact iptel.org by e-mail at the following addresses:
- * info(a)iptel.org
- *
- * ser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#ifndef CALC_H
-#define CALC_H
-
-
-#define HASHLEN 16
-typedef char HASH[HASHLEN];
-
-
-#define HASHHEXLEN 32
-typedef char HASHHEX[HASHHEXLEN+1];
-
-
-void CvtHex(HASH Bin, HASHHEX Hex);
-
-/*
- * calculate H(A1) as per HTTP Digest spec
- */
-void DigestCalcHA1(const char * pszAlg, const char * pszUserName, const char * pszRealm,
- const char * pszPassword, const char * pszNonce, const char * pszCNonce,
- HASHHEX SessionKey);
-
-/* calculate request-digest/response-digest as per HTTP Digest spec */
-void DigestCalcResponse(HASHHEX HA1, /* H(A1) */
- const char * pszNonce, /* nonce from server */
- const char * pszNonceCount, /* 8 hex digits */
- const char * pszCNonce, /* client nonce */
- const char * pszQop, /* qop-value: "", "auth", "auth-int" */
- const char * pszMethod, /* method from the request */
- const char * pszDigestUri, /* requested URL */
- HASHHEX HEntity, /* H(entity body) if qop="auth-int" */
- HASHHEX Response /* request-digest or response-digest */);
-
-
-#endif
diff --git a/utils/gen_ha1/gen_ha1.c b/utils/gen_ha1/gen_ha1.c
deleted file mode 100644
index 799da62..0000000
--- a/utils/gen_ha1/gen_ha1.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (C) 2001-2003 FhG Fokus
- *
- * This file is part of ser, a free SIP server.
- *
- * ser is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version
- *
- * For a license to use the ser software under conditions
- * other than those described here, or to purchase support for this
- * software, please contact iptel.org by e-mail at the following addresses:
- * info(a)iptel.org
- *
- * ser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "../../md5global.h"
-#include "../../md5.h"
-#include "calc.h"
-
-
-
-int main(int argc, char** argv)
-{
- HASHHEX ha1;
-
- if (argc != 4) {
- printf("Usage: gen_ha1 <username> <realm> <password> \n");
- /* return EXIT_SUCCESS; -jku */
- return 1;
- }
-
- DigestCalcHA1("md5", argv[1], argv[2], argv[3], "", "", ha1);
- printf("%s\n", ha1);
-
- return 0; /* jku */
-}
Hi folks!
Klaus and I are trying to organize some documentation efforts here at
Astricon, but we have been sidetracked by all the fun people
around... :-)
Anyway, I was spending a few minutes looking at mi_rpc and xmlrpc and
don't really get what's up with these modules. We must lack some
serious documentation here, on why we have two modules. mi_rpc is
poorly documented, too.
Anyone that can explain if these are just the same modules or if the
case is that they are totally different and tell me that I'm stupid
and totally forgot to read documentation?
/O