Hi Alex,
sorry for delay, here some comments:
gw_rwlock_wrlock(&smsc_list_lock);
+ gwlist_add_producer(smsc_list);
you don't need to add producer to smsc_list because all
synchronization should go via rwlock smsc_list_lock.
The same seems also the case for smsc2_remove_smsc/smsc2_add_smsc....
+
+ /* reload the groups from the config file */
+ if (bb_reload_smsc_groups() != 0) {
+ gwlist_remove_producer(smsc_list);
+ gw_rwlock_unlock(&smsc_list_lock);
+ return -1;
}
I think it would be better to try to reload config and only then
shutdown/start SMSC links. Because you should at least ensure
that if config file is not readable that you have all old SMSC links
intact.
+ if (conn != NULL) {
+ gwlist_append(smsc_list, conn);
+ smscconn_start(conn);
+ success = 1;
}
Please fix indentation...
Thanks,
Alex
Am 09.07.2009 um 16:04 schrieb Alejandro Guerrieri:
Alex,
Please try this one.
It works by first stopping and removing all running instances, then
it reloads the groups from the config file and tries to add and
start the instances again. It also fixes a bug on remove-smsc (some
instances would fail to be removed when sharing the same admin-id).
Things to note:
1. I've tried the scenario you've depicted yesterday and now it
works as expected (the extra instances are removed).
2. You don't need to stop the smsc first to re-start it. Since the
start process removes the running instances, you can run "start-
smsc" and it will stop->remove->reload->add->start. Perhaps "restart-
smsc" or "reload-smsc" would be more appropiate, to be honest,
though that would probably confuse a few people.
Regards,
--
Alejandro Guerrieri
[email protected]
<kannel-http-admin-fix.patch>
On 09/07/2009, at 9:21, Alexander Malysh wrote:
Am 09.07.2009 um 02:23 schrieb Alejandro Guerrieri:
Alex,
I'm fixing it. I'll be back with a new patch tomorrow.
Thanks!
Regards,
--
Alejandro Guerrieri
[email protected]
On 08/07/2009, at 22:23, Alexander Malysh wrote:
Hi again,
Am 08.07.2009 um 18:28 schrieb Alejandro Guerrieri:
Alex,
I've already fixed the warnings (two variables declared but not
used).
Regarding the example you've given, that's why I've noted that
you shouldn't play with the id/admin-id's.
Under my understanding, restart is meant to be used when you
need to modify some parameters. Modifying the number of binds
qualifies for a remove-smsc/add-smsc.
On the scenario you depict, if you remove-smsc A and then add-
smsc A, it'll do as expected.
A possible approach would be to replace restart-smsc for:
get lock
remove-smsc
add-smsc
release lock
Or just leave it as it is and document it better?
this is bug and bugs should not be documented their should be
fixed ;)
Before your patch was applied it was not possible to provoke such
situation now it's possible and
easy fixable. I would like to see patch to fix it or I will do
this myself :)
Should I fix it or you?
I just already see user complains :)
What do you think?
--
Alejandro Guerrieri
[email protected]
On 08/07/2009, at 17:40, Alexander Malysh wrote:
Hi Alex,
sorry I have not seen this before:
gw/bb_smscconn.c: In function ‘smsc2_remove_smsc’:
gw/bb_smscconn.c:839: warning: unused variable ‘smscid’
gw/bb_smscconn.c: In function ‘smsc2_add_smsc’:
gw/bb_smscconn.c:870: warning: unused variable ‘smsc_type’
Please fix these warnings. Could you please test compile at
your devel host with
./configure --enable-warnings ...
then you will see these :)
And I think that now, with config reload, smsc2_restart_smsc
function don't work as expected.
There is example:
group = smsc
smsc-id = A
group = smsc
smsc-id = A
group = smsc
smsc-id = A
-> start bearerbox
-> reconfigure
group = smsc
smsc-id = A
-> restart_smsc(A)
first found smsc-id = A will be restarted but the second will
not found in the config
and error will be logged, leaving the second and third
instances. This is not a expected behavior.
I would expect that all 3 instances will be shutdown and only
one will be running after restarting.
I propose to change it in following sequence:
- get lock
- shutdown all instances with this id
- start all found instances from new config
- release lock
Thanks,
Alex
Am 08.07.2009 um 16:30 schrieb Alejandro Guerrieri:
Commited to CVS.
Regards,
--
Alejandro Guerrieri
[email protected]
On 08/07/2009, at 15:12, Alexander Malysh wrote:
no objections from me...
Thanks,
Alex
Am 08.07.2009 um 14:52 schrieb Alejandro Guerrieri:
Here's the patch with the userguide part.
If no objections, I'll commit it later.
Regards,
--
Alejandro Guerrieri
[email protected]
<kannel-http-admin-ug.patch>