]> granicus.if.org Git - php/commitdiff
@- Allow cybercash to compile as a DL module. (Sterling)
authorSterling Hughes <sterling@php.net>
Sat, 1 Jul 2000 01:37:11 +0000 (01:37 +0000)
committerSterling Hughes <sterling@php.net>
Sat, 1 Jul 2000 01:37:11 +0000 (01:37 +0000)
-Allow cybercash to compile as a DL module.
-Stylistic changes.
-Add RETURN_STRINGL + Z_*_PP macros

ext/cybercash/cybercash.c

index a1381506ebefa1026e70a692d0864a210823c55c..85b536c3f5ed02e7bb6e6b58d96fb703617d9879 100644 (file)
@@ -40,26 +40,40 @@ function_entry cybercash_functions[] = {
        PHP_FE(cybercash_decr, NULL)
        PHP_FE(cybercash_base64_encode, NULL)
        PHP_FE(cybercash_base64_decode, NULL)
-       {0}
-  };
+       {NULL, NULL, NULL}
+};
 
 zend_module_entry cybercash_module_entry = {
        "cybercash",
        cybercash_functions,
-       NULL,NULL,
-       NULL,NULL,
        NULL,
+       NULL,
+       NULL,
+       NULL,
+       PHP_MINFO(cybercash),
        STANDARD_MODULE_PROPERTIES,
 };
 
+#ifdef COMPILE_DL_CYBERCASH
+ZEND_GET_MODULE(cybercash)
+#endif
+
+PHP_MINFO_FUNCTION(cybercash)
+{
+       php_info_print_table_start();
+       php_info_print_table_row(2, "Cybercash Support", "enabled");
+       php_info_print_table_end();
+}
+
 PHP_FUNCTION(cybercash_encr)
 {
-       pval **wmk, **sk, **inbuff;
+       zval **wmk, **sk, **inbuff;
        unsigned char *outbuff, *macbuff;
        unsigned int outAlloc, outLth;
        long errcode;
-  
-       if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3,&wmk,&sk,&inbuff) == FAILURE) {
+
+       if (ZEND_NUM_ARGS() != 3 || 
+           zend_get_parameters_ex(3, &wmk, &sk, &inbuff) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
 
@@ -67,132 +81,122 @@ PHP_FUNCTION(cybercash_encr)
        convert_to_string_ex(sk);
        convert_to_string_ex(inbuff);
 
-       outAlloc = (*inbuff)->value.str.len + 10;
+       outAlloc = Z_STRLEN_PP(inbuff) + 10;
 
-  outbuff = (unsigned char *)emalloc(outAlloc);
-  macbuff = (unsigned char *)emalloc(20);
+       outbuff = (unsigned char *)emalloc(sizeof(unsigned char) * outAlloc);
+       macbuff = (unsigned char *)emalloc(sizeof(unsigned char) * 20);
 
-  errcode = mck_encr((*wmk)->value.str.val,(*sk)->value.str.val,
-                       (*inbuff)->value.str.len+1,
-                       (*inbuff)->value.str.val,
-                       outAlloc,
-                       outbuff,
-                       &outLth,
-                       macbuff);
+       errcode = mck_encr(Z_STRVAL_PP(wmk),
+                       Z_STRVAL_PP(sk),
+                       Z_STRLEN_PP(inbuff) + 1,
+                       Z_STRVAL_PP(inbuff),
+                       outAlloc,
+                       outbuff,
+                       &outLth,
+                       macbuff);
 
-       array_init(return_value);
+       if (array_init(return_value) == FAILURE) {
+               php_error(E_WARNING, "Return value from cybercash_encr could not be initialized");
+               RETURN_FALSE;
+       }
 
-       add_assoc_long(return_value,"errcode",errcode);
+       add_assoc_long(return_value, "errcode", errcode);
 
-       if(!errcode)
-       {
-               add_assoc_stringl(return_value,"outbuff",outbuff,outLth,0);
-               add_assoc_long(return_value,"outLth",outLth);
+       if (!errcode) {
+               add_assoc_stringl(return_value, "outbuff", outbuff, outLth, 0);
+               add_assoc_long(return_value,"outLth",outLth);
                add_assoc_stringl(return_value,"macbuff",macbuff,20,0);
-       }
-       else
-       {
-               efree(outbuff);
-               efree(macbuff);
-       }
+       } else {
+               efree(outbuff);
+               efree(macbuff);
+       }
 }
 
 PHP_FUNCTION(cybercash_decr)
 {
-  pval **wmk,**sk,**inbuff;
-  unsigned char *outbuff, *macbuff;
-  unsigned int outAlloc, outLth;
-  long errcode;
+       zval **wmk,**sk,**inbuff;
+       unsigned char *outbuff, *macbuff;
+       unsigned int outAlloc, outLth;
+       long errcode;
   
 
-  if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3,&wmk,&sk,&inbuff) == FAILURE)
-  {
-    WRONG_PARAM_COUNT;
-  }
+       if (ZEND_NUM_ARGS() != 3 ||
+               zend_get_parameters_ex(3, &wmk, &sk, &inbuff) == FAILURE) {
+               WRONG_PARAM_COUNT;
+       }
 
-  convert_to_string_ex(wmk);
-  convert_to_string_ex(sk);
-  convert_to_string_ex(inbuff);
+       convert_to_string_ex(wmk);
+       convert_to_string_ex(sk);
+       convert_to_string_ex(inbuff);
 
-  outAlloc=(*inbuff)->value.str.len;
+       outAlloc = Z_STRLEN_PP(inbuff);
 
-  outbuff=(unsigned char *)emalloc(outAlloc);
-  macbuff=(unsigned char *)emalloc(20);
+       outbuff = (unsigned char *)emalloc(sizeof(unsigned char) * outAlloc);
+       macbuff = (unsigned char *)emalloc(sizeof(unsigned char) * 20);
 
-  errcode=mck_decr((*wmk)->value.str.val,
-                   (*sk)->value.str.val,
-                   (*inbuff)->value.str.len,
-                   (*inbuff)->value.str.val,
-                   outAlloc,
-                   outbuff,
-                   &outLth,
-                   macbuff);
+       errcode = mck_decr(Z_STRVAL_PP(wmk),
+                       Z_STRVAL_PP(sk),
+                       Z_STRLEN_PP(inbuff),
+                       Z_STRLEN_PP(inbuff),
+                       outAlloc,
+                       outbuff,
+                       &outLth,
+                       macbuff);
 
-       array_init(return_value);
+       if (array_init(return_value) == FAILURE) {
+               php_error(E_WARNING, "Could not initialize Return value from cybercash_decr")
+               RETURN_FALSE;
+       }
 
-       add_assoc_long(return_value,"errcode",errcode);
+       add_assoc_long(return_value, "errcode", errcode);
 
-       if(!errcode) {
-               add_assoc_stringl(return_value,"outbuff",outbuff,outLth,0);
-               add_assoc_long(return_value,"outLth",outLth);
-               add_assoc_stringl(return_value,"macbuff",macbuff,20,0);
+       if (!errcode) {
+               add_assoc_stringl(return_value, "outbuff", outbuff, outLth, 0);
+               add_assoc_long(return_value, "outLth", outLth);
+               add_assoc_stringl(return_value, "macbuff", macbuff, 20, 0);
+       } else {
+               efree(outbuff);
+               efree(macbuff);
        }
-       else
-       {
-               efree(outbuff);
-               efree(macbuff);
-       }
 }
 
 PHP_FUNCTION(cybercash_base64_encode)
 {
-  pval **inbuff;
-  char *outbuff;
-  long ret_length;
+       zval **inbuff;
+       char *outbuff;
+       long ret_length;
 
-  if(ZEND_NUM_ARGS() != 1 ||
-     zend_get_parameters_ex(1,&inbuff) == FAILURE)
-  {
-    WRONG_PARAM_COUNT;
-  }
-
-  convert_to_string_ex(inbuff);
+       if (ZEND_NUM_ARGS() != 1 ||
+           zend_get_parameters_ex(1, &inbuff) == FAILURE) {
+               WRONG_PARAM_COUNT;
+       }
+       convert_to_string_ex(inbuff);
 
-  outbuff=(char *)emalloc(
-    base64_enc_size((unsigned int)(*inbuff)->value.str.len));
+       outbuff = (char *)emalloc(base64_enc_size((unsigned int)Z_STRLEN_PP(inbuff)));
   
-  ret_length=base64_encode(outbuff,
-     (*inbuff)->value.str.val,(*inbuff)->value.str.len);
+       ret_length = base64_encode(outbuff, 
+                                      Z_STRVAL_PP(inbuff),
+                                                          Z_STRLEN_PP(inbuff));
 
-  return_value->value.str.val=outbuff;
-  return_value->value.str.len=ret_length;
-  return_value->type=IS_STRING;
-  
+       RETURN_STRINGL(outbuff, ret_length, 0);
 }
 
 PHP_FUNCTION(cybercash_base64_decode)
 {
-  pval **inbuff;
-  char *outbuff;
-  long ret_length;
-
-  if(ZEND_NUM_ARGS() != 1 ||
-     zend_get_parameters_ex(1,&inbuff) == FAILURE)
-  {
-    WRONG_PARAM_COUNT;
-  }
+       zval **inbuff;
+       char *outbuff;
+       long ret_length;
 
-  convert_to_string_ex(inbuff);
+       if (ZEND_NUM_ARGS() != 1 ||
+           zend_get_parameters_ex(1, &inbuff) == FAILURE) {
+               WRONG_PARAM_COUNT;
+       }
+       convert_to_string_ex(inbuff);
 
-  outbuff=(char *)emalloc(
-    base64_dec_size((unsigned int)(*inbuff)->value.str.len));
+       outbuff = (char *)emalloc(base64_dec_size((unsigned int)Z_STRLEN_PP(inbuff)));
   
-  ret_length=base64_decode(outbuff,
-     (*inbuff)->value.str.val,(*inbuff)->value.str.len);
+       ret_length = base64_decode(outbuff, Z_STRVAL_PP(inbuff), Z_STRLEN_PP(inbuff));
 
-  return_value->value.str.val=outbuff;
-  return_value->value.str.len=ret_length;
-  return_value->type=IS_STRING;
-  
+       RETURN_STRINGL(outbuff, ret_length, 0);
 }
 #endif