![]()
From: Murat Koç (murat.koc@frontsite.com.tr)
Date: Wed 01 Sep 2004 - 12:31:54 EEST
> > Selamlar..
Selam,
Ekteki 5 dakikalık bir quick hack. tekerleği yeniden keşfetmişsiniz gibi. rpm
API i biraz daha okursanız daha faydalı olacaktır sanırım.
rpmtaglist.h gereksiz örnek olması açısından bunu yolluyorum. Daha fazla vakit
bulduğumda komple bir gözden geçirme yapabilirim.
Test etmedim :) hata varsa affola.
Elinize sağlık.
-------------------------------php_rpm.diff-----------------------------------
diff -uNr php_rpm.orig/php_rpm.c php_rpm/php_rpm.c
--- php_rpm.orig/php_rpm.c 2004-08-31 15:31:34.000000000 +0300
+++ php_rpm/php_rpm.c 2004-09-01 12:24:55.000000000 +0300
@@ -31,7 +31,7 @@
#include <rpm/rpmlib.h>
#include <zlib.h>
#include "php_rpm.h"
-#include "rpmtaglist.h"
+/*#include "rpmtaglist.h"*/
#include "php_ini.h"
#include "cpio.h"
#include "php_globals.h"
@@ -51,7 +51,8 @@
static void _free_rpmres(zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
- rpmResource res = (rpmResource *)rsrc->ptr;
+
+ rpmResource res = (rpmResource *)rsrc->ptr;
if (((unsigned int)res->pkg_handle) != 1 )
free_rpmresource(res);
@@ -59,7 +60,7 @@
efree(res);
}
-void free_rpmresource(rpmResource res)
+int free_rpmresource(rpmResource res)
{
headerFree(res->pkg_header);
Fclose(res->pkg_handle);
@@ -128,8 +129,8 @@
int i;
char buf[256];
- for (i=0; i<RPM_TAGCOUNT; i++)
- zend_register_long_constant(taglist[i].tagname,
strlen(taglist[i].tagname)+1, taglist[i].tag, CONST_PERSISTENT, module_number
TSRMLS_CC);
+ for (i=0; i<rpmTagTableSize; i++)
+ zend_register_long_constant(rpmTagTable[i].name,
strlen(rpmTagTable[i].name)+1, rpmTagTable[i].val, CONST_PERSISTENT,
module_number TSRMLS_CC);
__rsrcDestructHnd = zend_register_list_destructors_ex(_free_rpmres, NULL,
"rpm", module_number);
return SUCCESS;
-------------------------------------------------------------------------------
-- __________ | | | | Murat Koç | | Manager & IT Consultant | FRONT | |==========| FrontSITE Bilgi Teknolojisi A.Ş. |_____SITE_| http://www.frontsite.com.tr/ linux-sohbet listesinden cikmak ve tum listeci islemleri icin http://liste.linux.org.tr/ adresini kullanabilirsiniz. Bu listeden cikmak icin <a href="mailto:linux-sohbet-request@liste.linux.org.tr?Subject=unsubscribe">tiklayiniz</a>
![]()