From:             [EMAIL PROTECTED]
Operating system: OS400
PHP version:      4.0.4pl1
PHP Bug Type:     Compile Failure
Bug description:  Type of the parameter conflicts with previous declaration of function

When compiling using a C compiler, it does not allow parameters that are defined as 
const to be passed to a function that does not have the const qualifier in the 
prototype.  Also, there are some parameter mismatches.  Details below.

---------- begin [main/network.c] ----------
ERROR :129   Type of the parameter  conflicts with previous declaration of function .
INFORMATIONAL :129   Prototype has type pointer to  unsigned character .
INFORMATIONAL :129   Argument has type pointer to   constant unsigned character .
---------- end   [network.qwobj] ----------

Line 129:

host_info = gethostbyname(host);

But host is const char *.  So I had to change line to as follows:
host_info = gethostbyname((char *)host);

---------- begin [fsock.qwobj] ----------
ERROR :110   Type of the parameter  conflicts with previous declaration of function .
INFORMATIONAL :110   Prototype has type pointer to  unsigned character .
INFORMATIONAL :110   Argument has type pointer to   constant unsigned character .
ERROR :183   Type of the parameter  conflicts with previous declaration of function .
INFORMATIONAL :183   Prototype has type pointer to  unsigned character .
INFORMATIONAL :183   Argument has type pointer to  signed integer .
ERROR :183   Type of the parameter  conflicts with previous declaration of function .
INFORMATIONAL :183   Prototype has type pointer to  signed integer .
INFORMATIONAL :183   Argument has type pointer to  unsigned integer .
---------- end   [fsock.qwobj] ----------

Line 110:

host_info = gethostbyname((char *)addr);
But addr is const char *.  So I had to change line to as follows:
host_info = gethostbyname((char *)addr);

Line 183:
Protoype for getsockopt is: getsockopt(int, int, int, char *, int *).

However, Line 183 contains:

if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {

where error is int and len is socklen_t.  I had to change line to as follows:

if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (char *)&error, (int *)&len) < 0) {


I hope that these types of changes are made, so as to compile easily on any platform. 


-- 
Edit Bug report at: http://bugs.php.net/?id=9360&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to